﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace Sistema.WF.View
{
    public class ViewException: Util.SistemaException
    {

        String _mensagem;
        String _log;
        Exception _excecaoOriginal;
        private Exception ex;
        private string p; 

        public ViewException(Util.SistemaException InnerException, String pMensagemErro = null, String pMensagemAoUsuario = null)
            : base(InnerException, pMensagemErro, pMensagemAoUsuario)
        {
            this._mensagem = pMensagemErro;
            _excecaoOriginal = new Exception();
            string dirAtual = Directory.GetCurrentDirectory();
            dirAtual = dirAtual.Substring(0, 2);
            _log = dirAtual + "\\NFE\\ViewLog.txt"; 
            this.GerarLog();
        }

        public ViewException(String MensagemErro, String MensagemAoUsuario, Exception InnerException = null)
            : base(MensagemErro, MensagemAoUsuario, InnerException)
        {
            this._mensagem = MensagemErro;
             _excecaoOriginal = new Exception();
            string dirAtual = Directory.GetCurrentDirectory();
            dirAtual = dirAtual.Substring(0, 2);
             _log = dirAtual + "\\NFE\\ViewLog.txt";
            this.GerarLog();
        }

        public void GerarLog()
        {
            string log;
            log = Environment.NewLine + "Mensagem de erro gerada pelo framework: " + _excecaoOriginal.Message + " Mensagem de erro mostrada ao usuario: " + this._mensagem + " Data e o Hora: " + DateTime.Now
              + " " ;

            StreamWriter arq = new StreamWriter(_log, true, Encoding.ASCII);
            arq.Write(log);
            arq.Close();
        }
    }
}
